/*
Object.is()  是 JavaScript 内置函数，用于比较两个值是否相等。它的行为与  ===  运算符类似，但有两个例外：

- 当比较两个值时，如果它们都是  NaN ，那么返回  true 。
- 当比较两个值时，如果它们分别是  +0  和  -0 ，那么返回  false 。

 Object.is()  方法有两个参数，分别是要比较的两个值。它返回一个布尔值，表示两个参数是否相等。
 */


Object.myIs = function(x, y) {
    if (x === y) {
        // 当前情况下，只有一种情况是特殊的，即 +0 -0
        // 如果 x !== 0，则返回true
        // 如果 x === 0，则需要判断+0和-0，则可以直接使用 1/+0 === Infinity 和 1/-0 === -Infinity来进行判断
        return x !== 0 || 1 / x === 1 / y;
    }
    // x !== y 的情况下，只需要判断是否为NaN，如果x!==x，则说明x是NaN，同理y也一样
    // x和y同时为NaN时，返回true
    return x !== x && y !== y;
}
console.log(Object.myIs(NaN,NaN))
console.log(Object.myIs(-0,+0))
